অ্যাপাচি অ্যাকটিভএমকিউ একটি Java ভিত্তিক মেসেজ ব্রোকার যা Java Message Service (JMS) API ব্যবহার করে, যার মাধ্যমে Java অ্যাপ্লিকেশনগুলি সহজে মেসেজ পাঠাতে এবং গ্রহণ করতে পারে। অ্যাপাচি অ্যাকটিভএমকিউ এর সাথে Java ইন্টিগ্রেশন করার মাধ্যমে, আপনি মেসেজিং সিস্টেম তৈরি করতে পারেন যা একাধিক অ্যাপ্লিকেশন বা সিস্টেমের মধ্যে যোগাযোগ এবং ডেটা আদান-প্রদান সক্ষম করবে। এখানে, অ্যাপাচি অ্যাকটিভএমকিউ এর সাথে Java অ্যাপ্লিকেশন ইন্টিগ্রেট করার পদ্ধতি নিয়ে আলোচনা করা হবে।
অ্যাপাচি অ্যাকটিভএমকিউ এর সাথে Java ইন্টিগ্রেশন করার জন্য আপনাকে JMS API ব্যবহার করতে হবে, যা অ্যাপাচি অ্যাকটিভএমকিউ এর মাধ্যমে মেসেজ পাঠানোর এবং গ্রহণ করার জন্য ব্যবহৃত হয়। নিচে সাধারণভাবে এই প্রক্রিয়া বর্ণনা করা হয়েছে।
Java প্রোজেক্টে অ্যাপাচি অ্যাকটিভএমকিউ এর লাইব্রেরি অন্তর্ভুক্ত করার জন্য আপনি Maven অথবা Gradle ব্যবহার করতে পারেন। Maven ব্যবহার করলে আপনার pom.xml
ফাইলে নিচের ডিপেনডেন্সি যুক্ত করতে হবে:
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>5.17.0</version> <!-- সর্বশেষ সংস্করণ ব্যবহার করুন -->
</dependency>
JMS হল Java এর একটি API, যা মেসেজিং সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার জন্য ব্যবহৃত হয়। অ্যাপাচি অ্যাকটিভএমকিউ এর সাথে Java ইন্টিগ্রেশন করার জন্য JMS ব্যবহার করা হয়, যা মেসেজ প্রোডিউসার এবং কনসিউমারকে সিস্টেমের মধ্যে মেসেজ আদান-প্রদান করতে সহায়তা করে।
এখানে একটি উদাহরণ দেওয়া হলো যেখানে একটি Java প্রোগ্রাম মেসেজ প্রেরণ করবে অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকারে:
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class MessageProducerExample {
public static void main(String[] args) throws JMSException {
// ১. ActiveMQ connection factory তৈরি
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
// ২. কানেকশন তৈরি
Connection connection = connectionFactory.createConnection();
connection.start();
// ৩. সেশন তৈরি
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// ৪. ডেস্টিনেশন (Queue অথবা Topic)
Destination destination = session.createQueue("TEST.QUEUE");
// ৫. প্রোডিউসার তৈরি
MessageProducer producer = session.createProducer(destination);
// ৬. মেসেজ তৈরি
TextMessage message = session.createTextMessage("Hello, ActiveMQ!");
// ৭. মেসেজ প্রেরণ
producer.send(message);
// ৮. রিসোর্স বন্ধ করা
producer.close();
session.close();
connection.close();
System.out.println("Message sent successfully!");
}
}
এই প্রোগ্রামে, একটি প্রোডিউসার (MessageProducer
) তৈরি করা হয় যা TEST.QUEUE
কিউতে একটি মেসেজ পাঠাবে।
এখানে একটি উদাহরণ দেওয়া হলো যেখানে একটি Java প্রোগ্রাম অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকার থেকে মেসেজ গ্রহণ করবে:
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class MessageConsumerExample {
public static void main(String[] args) throws JMSException {
// ১. ActiveMQ connection factory তৈরি
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
// ২. কানেকশন তৈরি
Connection connection = connectionFactory.createConnection();
connection.start();
// ৩. সেশন তৈরি
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// ৪. ডেস্টিনেশন (Queue অথবা Topic)
Destination destination = session.createQueue("TEST.QUEUE");
// ৫. কনসিউমার তৈরি
MessageConsumer consumer = session.createConsumer(destination);
// ৬. মেসেজ গ্রহণ করা
Message message = consumer.receive();
// ৭. মেসেজ প্রিন্ট করা
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
System.out.println("Received message: " + textMessage.getText());
}
// ৮. রিসোর্স বন্ধ করা
consumer.close();
session.close();
connection.close();
}
}
এখানে একটি কনসিউমার (MessageConsumer
) তৈরি করা হয়েছে যা TEST.QUEUE
কিউ থেকে মেসেজ গ্রহণ করবে এবং তা প্রদর্শন করবে।
এই প্রক্রিয়া Java অ্যাপ্লিকেশনের মাধ্যমে মেসেজিং সিস্টেমের মধ্যে ডেটা শেয়ার করার একটি কার্যকরী পদ্ধতি প্রদান করে।
অ্যাপাচি অ্যাকটিভএমকিউ এর সাথে Java ইন্টিগ্রেশন খুবই সহজ এবং সরল। Java অ্যাপ্লিকেশনে অ্যাপাচি অ্যাকটিভএমকিউ ব্যবহারের জন্য আপনাকে JMS API ব্যবহার করতে হবে, যা মেসেজ প্রেরণ এবং গ্রহণের কাজ করে। প্রোডিউসার এবং কনসিউমার ক্লাসের মাধ্যমে মেসেজ পাঠানো এবং গ্রহণ করা সম্ভব হয়, যা বিভিন্ন অ্যাপ্লিকেশনগুলির মধ্যে ডেটা এক্সচেঞ্জ করতে সহায়তা করে।
Java Message Service (JMS) হল Java প্ল্যাটফর্মের একটি API যা অ্যাপ্লিকেশনগুলির মধ্যে অ্যাসিনক্রোনাস মেসেজিং যোগাযোগের সুবিধা প্রদান করে। এটি মেসেজ প্রডিউসার (Producer) এবং কনজিউমার (Consumer) এর মধ্যে মেসেজ আদান-প্রদান নিশ্চিত করে। অ্যাপাচি অ্যাকটিভএমকিউ একটি JMS কমপ্লায়েন্ট মেসেজ ব্রোকার, যা JMS প্রটোকল সাপোর্ট করে এবং বিভিন্ন ধরনের মেসেজিং সিস্টেমে কার্যকরীভাবে কাজ করে।
অ্যাপাচি অ্যাকটিভএমকিউ এবং JMS এর মধ্যে ইন্টিগ্রেশন অ্যাপ্লিকেশনগুলোকে সহজেই একে অপরের সাথে যোগাযোগ করতে সাহায্য করে এবং তাদের মধ্যে মেসেজ পাঠানোর জন্য সাধারণ API প্রদান করে।
JMS এর মাধ্যমে অ্যাপাচি অ্যাকটিভএমকিউ এর সঙ্গে ইন্টিগ্রেট করতে হলে, প্রথমে কিছু নির্দিষ্ট পদক্ষেপ অনুসরণ করতে হয়। নিচে প্রতিটি পদক্ষেপ বর্ণনা করা হলো।
প্রথমে অ্যাপাচি অ্যাকটিভএমকিউ সঠিকভাবে ইন্সটল করতে হবে। এর আগে যদি অ্যাকটিভএমকিউ ইন্সটল না করে থাকেন, তবে প্রথমে Apache ActiveMQ Download থেকে সর্বশেষ ভার্সন ডাউনলোড করে ইন্সটল করুন।
আপনার Java অ্যাপ্লিকেশনকে ActiveMQ ব্রোকারের সঙ্গে যোগাযোগ করার জন্য JMS API এবং ActiveMQ JMS Client লাইব্রেরি প্রয়োজন। আপনি Maven অথবা Gradle ব্যবহার করে লাইব্রেরি ইনক্লুড করতে পারেন।
Maven Dependency:
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>5.16.4</version> <!-- সর্বশেষ ভার্সন ব্যবহার করুন -->
</dependency>
Gradle Dependency:
implementation 'org.apache.activemq:activemq-client:5.16.4' <!-- সর্বশেষ ভার্সন ব্যবহার করুন -->
JMS ক্লায়েন্ট ব্যবহার করে অ্যাকটিভএমকিউ ব্রোকারের সঙ্গে সংযোগ স্থাপন করার জন্য, প্রথমে ConnectionFactory
তৈরি করতে হবে, যা অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকারে যোগাযোগ স্থাপন করবে।
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class JMSProducer {
public static void main(String[] args) throws JMSException {
// ActiveMQ ব্রোকারের URL দিয়ে কনফিগারেশন তৈরি
String brokerURL = "tcp://localhost:61616"; // অ্যাকটিভএমকিউ ব্রোকারের URL
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerURL);
// JMS Connection তৈরি
Connection connection = connectionFactory.createConnection();
connection.start();
// JMS Session তৈরি
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Queue বা Topic তৈরি
Destination destination = session.createQueue("TestQueue"); // বা createTopic("TestTopic");
// MessageProducer তৈরি
MessageProducer producer = session.createProducer(destination);
// মেসেজ তৈরি
TextMessage message = session.createTextMessage("Hello, ActiveMQ with JMS!");
// মেসেজ পাঠানো
producer.send(message);
System.out.println("Message Sent: " + message.getText());
// সংযোগ বন্ধ করা
producer.close();
session.close();
connection.close();
}
}
এখন, একটি কনজিউমার তৈরি করতে হবে যা ব্রোকার থেকে মেসেজ গ্রহণ করবে। এখানে একটি উদাহরণ দেওয়া হলো:
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class JMSConsumer {
public static void main(String[] args) throws JMSException {
// ActiveMQ ব্রোকারের URL দিয়ে কনফিগারেশন তৈরি
String brokerURL = "tcp://localhost:61616";
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerURL);
// JMS Connection তৈরি
Connection connection = connectionFactory.createConnection();
connection.start();
// JMS Session তৈরি
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Queue বা Topic তৈরি
Destination destination = session.createQueue("TestQueue");
// MessageConsumer তৈরি
MessageConsumer consumer = session.createConsumer(destination);
// মেসেজ গ্রহণ করা
TextMessage message = (TextMessage) consumer.receive();
System.out.println("Message Received: " + message.getText());
// সংযোগ বন্ধ করা
consumer.close();
session.close();
connection.close();
}
}
এখন অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকার চালু করুন। উইন্ডোজ, লিনাক্স বা macOS-এ activemq
স্ক্রিপ্ট রান করে এটি করা যায়।
cd <activemq-directory>/bin
./activemq start
এর পর, আপনার Java অ্যাপ্লিকেশনটি চালু করুন এবং ব্রোকারে মেসেজ পাঠান ও গ্রহণ করুন।
JMS এবং Apache ActiveMQ এর ইন্টিগ্রেশন একটি খুবই সাধারণ এবং কার্যকরী পদ্ধতি যা অ্যাপ্লিকেশনগুলোর মধ্যে অ্যাসিনক্রোনাস মেসেজিং যোগাযোগের জন্য ব্যবহৃত হয়। অ্যাকটিভএমকিউ ব্যবহার করে Queue এবং Topic মডেলগুলোতে মেসেজ পাঠানো এবং গ্রহণ করার জন্য Java অ্যাপ্লিকেশনগুলো সহজেই কনফিগার করা যেতে পারে। এই ইন্টিগ্রেশন আপনাকে একটি স্কেলেবল এবং রিলায়েবল মেসেজিং সিস্টেম তৈরি করতে সাহায্য করবে।
অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) এবং স্প্রিং ফ্রেমওয়ার্ক (Spring Framework) একসাথে ব্যবহৃত হলে এটি একটি শক্তিশালী মেসেজিং সিস্টেম তৈরি করতে সক্ষম হয়, যা জাভা অ্যাপ্লিকেশনগুলিতে মেসেজ পাসিং এবং অ্যাসিঙ্ক্রোনাস যোগাযোগ পরিচালনা করতে সহায়তা করে। স্প্রিং ফ্রেমওয়ার্ক অ্যাকটিভএমকিউ এর সাথে সহজে ইন্টিগ্রেট হতে পারে, যার মাধ্যমে আপনি মেসেজিং সিস্টেমকে আরও কার্যকর এবং স্কেলযোগ্যভাবে পরিচালনা করতে পারেন।
স্প্রিং ফ্রেমওয়ার্ক অ্যাকটিভএমকিউ এর সাথে ইন্টিগ্রেট করতে কিছু সাধারণ ধাপ অনুসরণ করতে হয়। এখানে স্প্রিং এর Spring JMS (Java Message Service) API ব্যবহৃত হয়, যা অ্যাকটিভএমকিউ-এর সাথে যোগাযোগ স্থাপন করতে সহায়তা করে।
প্রথমে আপনাকে স্প্রিং এবং অ্যাকটিভএমকিউ সম্পর্কিত ডিপেনডেন্সি আপনার pom.xml
(যদি আপনি মাভেন ব্যবহার করেন) ফাইলে যোগ করতে হবে।
<dependencies>
<!-- Spring JMS -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>5.3.20</version>
</dependency>
<!-- Apache ActiveMQ -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>5.16.3</version>
</dependency>
</dependencies>
স্প্রিং কনফিগারেশনে অ্যাকটিভএমকিউ ব্রোকারের সাথে সংযোগ স্থাপন করার জন্য একটি ConnectionFactory
কনফিগার করতে হবে। এটি স্প্রিং কনটেইনারে সেভ করা হয়, যাতে বিভিন্ন প্রোডিউসার এবং কনজিউমার এর মাধ্যমে মেসেজ সিস্টেম পরিচালিত হতে পারে।
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- ActiveMQ Connection Factory -->
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616"/>
</bean>
<!-- JMS Template -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="defaultDestinationName" value="queue/testQueue"/>
</bean>
<!-- Default Message Listener Container -->
<bean id="messageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="destinationName" value="queue/testQueue"/>
<property name="messageListener" ref="messageListener"/>
</bean>
<!-- Message Listener Bean -->
<bean id="messageListener" class="com.example.MessageListener"/>
</beans>
স্প্রিং অ্যাপ্লিকেশনে একটি প্রোডিউসার তৈরি করতে, আপনাকে JmsTemplate
ব্যবহার করতে হবে, যা মেসেজ প্রেরণের জন্য ব্যবহৃত হয়। নিচে একটি সিম্পল প্রোডিউসারের উদাহরণ দেওয়া হল:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Component;
@Component
public class MessageProducer {
@Autowired
private JmsTemplate jmsTemplate;
public void sendMessage(String message) {
jmsTemplate.convertAndSend("queue/testQueue", message);
}
}
এই কোডটি testQueue
নামে একটি কিউতে মেসেজ পাঠাবে।
কনজিউমার তৈরি করতে, আপনাকে MessageListener
ইন্টারফেস ইমপ্লিমেন্ট করতে হবে, যা অ্যাকটিভএমকিউ কিউ থেকে মেসেজ গ্রহণ করে এবং প্রসেস করে।
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
public class MessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
try {
String textMessage = ((TextMessage) message).getText();
System.out.println("Received message: " + textMessage);
} catch (Exception e) {
e.printStackTrace();
}
}
}
এটি testQueue
কিউ থেকে মেসেজ গ্রহণ করে এবং কনসোল এ প্রিন্ট করবে।
এখন, আপনার অ্যাপ্লিকেশন চালানোর জন্য স্প্রিং কনটেইনারকে লোড করতে হবে। এটি সাধারণত AnnotationConfigApplicationContext
বা ClassPathXmlApplicationContext
এর মাধ্যমে করা হয়।
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MainApplication {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
MessageProducer producer = context.getBean(MessageProducer.class);
producer.sendMessage("Hello, ActiveMQ with Spring!");
}
}
এই কোডটি একটি মেসেজ প্রোডিউস করবে এবং testQueue
কিউতে পাঠাবে। কনজিউমার সেই মেসেজ গ্রহণ করবে এবং কনসোলে দেখাবে।
JmsTemplate
, ConnectionFactory
, এবং MessageListener
ব্যবহার করা হয়। এই সংযোগের মাধ্যমে অ্যাপ্লিকেশনগুলি মেসেজ পাসিং, অ্যাসিঙ্ক্রোনাস কমিউনিকেশন, এবং মেসেজ কিউ পরিচালনা করতে সক্ষম হয়।JmsTemplate
ব্যবহার করে এবং কনজিউমার MessageListener
এর মাধ্যমে মেসেজ গ্রহণ করে।স্প্রিং ফ্রেমওয়ার্ক এবং অ্যাপাচি অ্যাকটিভএমকিউ ইন্টিগ্রেশন একটি শক্তিশালী মেসেজিং সিস্টেম তৈরি করতে সক্ষম যা বড় এবং স্কেলেবল অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত।
অ্যাপাচি অ্যাকটিভএমকিউ একটি মেসেজ ব্রোকার সিস্টেম যা মেসেজিং সিস্টেমের মধ্যে তথ্য প্রেরণ এবং গ্রহণের কাজ করে। এই প্রক্রিয়াতে Message Producers এবং Message Consumers দুটি প্রধান ভূমিকা পালন করে। অ্যাকটিভএমকিউ ব্যবহার করে, Java অ্যাপ্লিকেশন তৈরি করা হয় যা মেসেজ পাঠানোর জন্য প্রোডিউসার (Producer) এবং গ্রহণ করার জন্য কনজিউমার (Consumer) হিসেবে কাজ করে।
এখানে আমরা অ্যাকটিভএমকিউ ব্যবহার করে একটি Message Producer এবং Message Consumer তৈরি করার প্রক্রিয়া দেখবো।
একটি Message Producer হলো এমন একটি অ্যাপ্লিকেশন যা মেসেজ তৈরি করে এবং অ্যাকটিভএমকিউ ব্রোকারে পাঠায়। এটি একটি নির্দিষ্ট কিউ (Queue) বা টপিক (Topic) ব্যবহার করে মেসেজ পাঠায়।
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class MessageProducerExample {
public static void main(String[] args) {
try {
// ActiveMQ ConnectionFactory তৈরি
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start(); // সংযোগ শুরু করা
// সেশন তৈরি
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// কিউ তৈরি
Destination destination = session.createQueue("TEST_QUEUE");
// MessageProducer তৈরি
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); // Non-persistent delivery mode
// টেক্সট মেসেজ তৈরি
TextMessage message = session.createTextMessage("Hello, ActiveMQ!");
// মেসেজ পাঠানো
producer.send(message);
System.out.println("Message Sent: " + message.getText());
// সংযোগ বন্ধ
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
এই কোডে, MessageProducerExample ক্লাসটি একটি মেসেজ তৈরি করে এবং সেটি "TEST_QUEUE"-এ পাঠায়। এখানে Non-persistent মেসেজ ডেলিভারি মোড ব্যবহার করা হয়েছে, যার মানে মেসেজটি দ্রুত পাঠানো হবে এবং সিস্টেম বন্ধ হলে এটি হারিয়ে যাবে।
একটি Message Consumer হলো এমন একটি অ্যাপ্লিকেশন যা একটি নির্দিষ্ট কিউ বা টপিক থেকে মেসেজ গ্রহণ করে এবং সেটি প্রক্রিয়া করে।
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class MessageConsumerExample {
public static void main(String[] args) {
try {
// ActiveMQ ConnectionFactory তৈরি
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start(); // সংযোগ শুরু করা
// সেশন তৈরি
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// কিউ তৈরি
Destination destination = session.createQueue("TEST_QUEUE");
// MessageConsumer তৈরি
MessageConsumer consumer = session.createConsumer(destination);
// মেসেজ গ্রহণ
Message message = consumer.receive();
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
System.out.println("Message Received: " + textMessage.getText());
}
// সংযোগ বন্ধ
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
এই কোডে, MessageConsumerExample ক্লাসটি "TEST_QUEUE"-থেকে মেসেজ গ্রহণ করে এবং সেটি কনসোল-এ প্রিন্ট করে।
এই সিস্টেমটি JMS (Java Message Service) প্রোটোকল ব্যবহার করে অ্যাপাচি অ্যাকটিভএমকিউ ব্রোকারের মধ্যে মেসেজ প্রেরণ এবং গ্রহণ করে।
অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) ব্যবহারের মাধ্যমে Message Producers এবং Message Consumers তৈরি করা একটি সহজ প্রক্রিয়া। Producer মেসেজ তৈরি করে এবং অ্যাকটিভএমকিউ ব্রোকারে পাঠায়, যেখানে Consumer সেই মেসেজ গ্রহণ করে এবং প্রক্রিয়া করে। এই পদ্ধতিতে অ্যাপ্লিকেশনগুলো একে অপরের সাথে অ্যাসিঙ্ক্রোনাসভাবে যোগাযোগ করতে পারে এবং তথ্য আদান-প্রদান নিশ্চিত করতে পারে।
common.read_more